--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / Sideband.git / files / sbapp / kivymd / uix / bottomnavigation / bottomnavigation.py
Displaying Raw • Download
sbapp/kivymd/uix/bottomnavigation/bottomnavigation.py bcd5c37101c0030372e2f537fc450741d84f6a82 (bcd5c371) Text, 23.03 KB
T8b949e"""
Components/BottomNavigation
===========================
.. seealso::
`Material Design 2 spec, Bottom navigation <https://material.io/components/bottom-navigation>`_ and
`Material Design 3 spec, Bottom navigation <https://m3.material.io/components/navigation-bar/overview>`_
.. rubric:: Bottom navigation bars allow movement between primary destinations in an app:
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/bottom-navigation.png
:align: center
Usage
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
.. code-block:: kv
<Root>
MDBottomNavigation:
MDBottomNavigationItem:
name: "screen 1"
YourContent:
MDBottomNavigationItem:
name: "screen 2"
YourContent:
MDBottomNavigationItem:
name: "screen 3"
YourContent:
For ease of understanding, this code works like this:
.. code-block:: kv
<Root>
ScreenManager:
Screen:
name: "screen 1"
YourContent:
Screen:
name: "screen 2"
YourContent:
Screen:
name: "screen 3"
YourContent:
Example
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
.. code-block:: python
from kivy.lang import Builder
from kivymd.app import MDApp
class Test(MDApp):
def build(self):
self.theme_cls.material_style = "M3"
return Builder.load_string(
'''
MDScreen:
MDBottomNavigation:
panel_color: "#eeeaea"
selected_color_background: "#97ecf8"
text_color_active: 0, 0, 0, 1
MDBottomNavigationItem:
name: 'screen 1'
text: 'Mail'
icon: 'gmail'
badge_icon: "numeric-10"
MDLabel:
text: 'Mail'
halign: 'center'
MDBottomNavigationItem:
name: 'screen 2'
text: 'Discord'
icon: 'discord'
badge_icon: "numeric-5"
MDLabel:
text: 'Discord'
halign: 'center'
MDBottomNavigationItem:
name: 'screen 3'
text: 'LinkedIN'
icon: 'linkedin'
MDLabel:
text: 'LinkedIN'
halign: 'center'
'''
)
Test().run()
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/bottom-navigation.gif
:align: center
.. rubric:: :class:`~MDBottomNavigationItem` provides the following events for use:
.. code-block:: python
__events__ = (
"on_tab_touch_down",
"on_tab_touch_move",
"on_tab_touch_up",
"on_tab_press",
"on_tab_release",
)
.. code-block:: kv
Root:
MDBottomNavigation:
MDBottomNavigationItem:
on_tab_touch_down: print("on_tab_touch_down")
on_tab_touch_move: print("on_tab_touch_move")
on_tab_touch_up: print("on_tab_touch_up")
on_tab_press: print("on_tab_press")
on_tab_release: print("on_tab_release")
YourContent:
How to automatically switch a tab?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Use method :attr:`~MDBottomNavigation.switch_tab` which takes as argument
the name of the tab you want to switch to.
Use custom icon
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
.. code-block:: kv
MDBottomNavigation:
MDBottomNavigationItem:
icon: "icon.png"
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/bottom-navigation-custom-icon.png
:align: center
"""
Te6edf3__all__ Tff7b72= Tb4b4b4(
Ta5d6ff"Ta5d6ffTabbedPanelBaseTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffMDBottomNavigationItemTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffMDBottomNavigationTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffMDTabTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72import T7ee787os
Tff7b72from T7ee787typing Tff7b72import Te6edf3Union
Tff7b72from T7ee787kivyT7ee787.T7ee787animation Tff7b72import Te6edf3Animation
Tff7b72from T7ee787kivyT7ee787.T7ee787clock Tff7b72import Te6edf3Clock
Tff7b72from T7ee787kivyT7ee787.T7ee787coreT7ee787.T7ee787window Tff7b72import Te6edf3Window
Tff7b72from T7ee787kivyT7ee787.T7ee787coreT7ee787.T7ee787windowT7ee787.T7ee787window_sdl2 Tff7b72import Te6edf3WindowSDL
Tff7b72from T7ee787kivyT7ee787.T7ee787lang Tff7b72import Te6edf3Builder
Tff7b72from T7ee787kivyT7ee787.T7ee787metrics Tff7b72import Te6edf3dpTb4b4b4, Te6edf3sp
Tff7b72from T7ee787kivyT7ee787.T7ee787properties Tff7b72import Tb4b4b4(
Te6edf3BooleanPropertyTb4b4b4,
Te6edf3ColorPropertyTb4b4b4,
Te6edf3ListPropertyTb4b4b4,
Te6edf3NumericPropertyTb4b4b4,
Te6edf3ObjectPropertyTb4b4b4,
Te6edf3StringPropertyTb4b4b4,
Tb4b4b4)
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787behaviors Tff7b72import Te6edf3ButtonBehavior
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787boxlayout Tff7b72import Te6edf3BoxLayout
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787screenmanager Tff7b72import Te6edf3ScreenManagerException
Tff7b72from T7ee787kivymd Tff7b72import Te6edf3uix_path
Tff7b72from T7ee787kivymdT7ee787.T7ee787material_resources Tff7b72import Te6edf3STANDARD_INCREMENT
Tff7b72from T7ee787kivymdT7ee787.T7ee787theming Tff7b72import Te6edf3ThemableBehaviorTb4b4b4, Te6edf3ThemeManager
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787anchorlayout Tff7b72import Te6edf3MDAnchorLayout
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787behaviors Tff7b72import Tb4b4b4(
Te6edf3DeclarativeBehaviorTb4b4b4,
Te6edf3FakeRectangularElevationBehaviorTb4b4b4,
Tb4b4b4)
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787behaviorsT7ee787.T7ee787backgroundcolor_behavior Tff7b72import Tb4b4b4(
Te6edf3SpecificBackgroundColorBehaviorTb4b4b4,
Tb4b4b4)
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787floatlayout Tff7b72import Te6edf3MDFloatLayout
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787screen Tff7b72import Te6edf3MDScreen
Tff7b72from T7ee787kivymdT7ee787.T7ee787utilsT7ee787.T7ee787set_bars_colors Tff7b72import Te6edf3set_bars_colors
Tff7b72with Tffa657openTb4b4b4(
Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffjoinTb4b4b4(Te6edf3uix_pathTb4b4b4, Ta5d6ff"Ta5d6ffbottomnavigationTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffbottomnavigation.kvTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4,
Tb4b4b4) Tff7b72as Te6edf3kv_fileTb4b4b4:
Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3kv_fileTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72class T56d364MDBottomNavigationHeaderTb4b4b4(
Te6edf3ThemableBehaviorTb4b4b4, Te6edf3ButtonBehaviorTb4b4b4, Te6edf3MDAnchorLayout
Tb4b4b4)Tb4b4b4:
Te6edf3panel_color Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff0Tb4b4b4]Tb4b4b4)
T8b949e"""
Panel color of bottom navigation.
:attr:`panel_color` is an :class:`~kivy.properties.ColorProperty`
and defaults to `[1, 1, 1, 0]`.
"""
Te6edf3tab Tff7b72= Te6edf3ObjectPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
:attr:`tab` is an :class:`~MDBottomNavigationItem`
and defaults to `None`.
"""
Te6edf3panel Tff7b72= Te6edf3ObjectPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
:attr:`panel` is an :class:`~MDBottomNavigation`
and defaults to `None`.
"""
Te6edf3active Tff7b72= Te6edf3BooleanPropertyTb4b4b4(Tff7b72FalseTb4b4b4)
Te6edf3text Tff7b72= Te6edf3StringPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
:attr:`text` is an :class:`~MDTab.text`
and defaults to `''`.
"""
Te6edf3text_color_normal Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4)
T8b949e"""
Text color of the label when it is not selected.
:attr:`text_color_normal` is an :class:`~kivy.properties.ColorProperty`
and defaults to `[1, 1, 1, 1]`.
"""
Te6edf3text_color_active Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4)
T8b949e"""
Text color of the label when it is selected.
:attr:`text_color_active` is an :class:`~kivy.properties.ColorProperty`
and defaults to `[1, 1, 1, 1]`.
"""
Te6edf3selected_color_background Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tff7b72NoneTb4b4b4)
T8b949e"""
The background color of the highlighted item when using Material Design v3.
.. versionadded:: 1.0.0
:attr:`selected_color_background` is an :class:`~kivy.properties.ColorProperty`
and defaults to `None`.
"""
Te6edf3opposite_colors Tff7b72= Te6edf3BooleanPropertyTb4b4b4(Tff7b72TrueTb4b4b4)
Te6edf3_label Tff7b72= Te6edf3ObjectPropertyTb4b4b4(Tb4b4b4)
Te6edf3_label_font_size Tff7b72= Te6edf3NumericPropertyTb4b4b4(Ta5d6ff"Ta5d6ff12spTa5d6ff"Tb4b4b4)
Te6edf3_text_color_normal Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4)
Te6edf3_text_color_active Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4)
Te6edf3_selected_region_width Tff7b72= Te6edf3NumericPropertyTb4b4b4(Te6edf3dpTb4b4b4(T79c0ff64Tb4b4b4)Tb4b4b4)
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3panelTb4b4b4, Te6edf3tabTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffpanel Tff7b72= Te6edf3panel
Tff7b72selfTff7b72.Td2a8fftab Tff7b72= Te6edf3tab
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_text_color_normal Tff7b72= Tb4b4b4(
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffdisabled_hint_text_color
Tff7b72if Tff7b72selfTff7b72.Td2a8fftext_color_normal Tff7b72== Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]
Tff7b72else Tff7b72selfTff7b72.Td2a8fftext_color_normal
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_label Tff7b72= Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ff_label
Tff7b72selfTff7b72.Td2a8ff_label_font_size Tff7b72= Te6edf3spTb4b4b4(T79c0ff12Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3disabled_hint_text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ff_update_theme_styleTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffactive Tff7b72= Tff7b72False
Tff7b72def Td2a8ffon_pressTb4b4b4(Tff7b72selfTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Called when clicking on a panel item."""
Tff7b72if Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffmaterial_style Tff7b72== Ta5d6ff"Ta5d6ffM2Ta5d6ff"Tb4b4b4:
Te6edf3AnimationTb4b4b4(Te6edf3_label_font_sizeTff7b72=Te6edf3spTb4b4b4(T79c0ff14Tb4b4b4)Tb4b4b4, Te6edf3dTff7b72=T79c0ff0.1Tb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffmaterial_style Tff7b72== Ta5d6ff"Ta5d6ffM3Ta5d6ff"Tb4b4b4:
Te6edf3AnimationTb4b4b4(
Te6edf3_selected_region_widthTff7b72=Te6edf3dpTb4b4b4(T79c0ff64Tb4b4b4)Tb4b4b4,
Te6edf3tTff7b72=Ta5d6ff"Ta5d6ffin_out_sineTa5d6ff"Tb4b4b4,
Te6edf3dTff7b72=T79c0ff0Tb4b4b4,
Tb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tff7b72selfTb4b4b4)
Te6edf3AnimationTb4b4b4(
Te6edf3_text_color_normalTff7b72=Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffprimary_color
Tff7b72if Tff7b72selfTff7b72.Td2a8fftext_color_active Tff7b72== Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]
Tff7b72else Tff7b72selfTff7b72.Td2a8fftext_color_activeTb4b4b4,
Te6edf3dTff7b72=T79c0ff0.1Tb4b4b4,
Tb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72def Td2a8ff_update_theme_styleTb4b4b4(
Tff7b72selfTb4b4b4, Te6edf3instance_theme_managerTb4b4b4: Te6edf3ThemeManagerTb4b4b4, Te6edf3colorTb4b4b4: Tffa657list
Tb4b4b4)Tb4b4b4:
T8b949e"""Called when the application theme style changes (White/Black)."""
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffactiveTb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_text_color_normal Tff7b72= Tb4b4b4(
Te6edf3color
Tff7b72if Tff7b72selfTff7b72.Td2a8fftext_color_normal Tff7b72== Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]
Tff7b72else Tff7b72selfTff7b72.Td2a8fftext_color_normal
Tb4b4b4)
Tff7b72class T56d364MDTabTb4b4b4(Te6edf3MDScreenTb4b4b4, Te6edf3ThemableBehaviorTb4b4b4)Tb4b4b4:
T8b949e"""
A tab is simply a screen with meta information that defines the content
that goes in the tab header.
"""
Te6edf3__events__ Tff7b72= Tb4b4b4(
Ta5d6ff"Ta5d6ffon_tab_touch_downTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffon_tab_touch_moveTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffon_tab_touch_upTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffon_tab_pressTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffon_tab_releaseTa5d6ff"Tb4b4b4,
Tb4b4b4)
T8b949e"""Events provided."""
Te6edf3text Tff7b72= Te6edf3StringPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
Tab header text.
:attr:`text` is an :class:`~kivy.properties.StringProperty`
and defaults to `''`.
"""
Te6edf3icon Tff7b72= Te6edf3StringPropertyTb4b4b4(Ta5d6ff"Ta5d6ffcheckbox-blank-circleTa5d6ff"Tb4b4b4)
T8b949e"""
Tab header icon.
:attr:`icon` is an :class:`~kivy.properties.StringProperty`
and defaults to `'checkbox-blank-circle'`.
"""
Te6edf3badge_icon Tff7b72= Te6edf3StringPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
Tab header badge icon.
.. versionadded:: 1.0.0
:attr:`badge_icon` is an :class:`~kivy.properties.StringProperty`
and defaults to `''`.
"""
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffindex Tff7b72= T79c0ff0
Tff7b72selfTff7b72.Td2a8ffparent_widget Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffregister_event_typeTb4b4b4(Ta5d6ff"Ta5d6ffon_tab_touch_downTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffregister_event_typeTb4b4b4(Ta5d6ff"Ta5d6ffon_tab_touch_moveTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffregister_event_typeTb4b4b4(Ta5d6ff"Ta5d6ffon_tab_touch_upTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffregister_event_typeTb4b4b4(Ta5d6ff"Ta5d6ffon_tab_pressTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffregister_event_typeTb4b4b4(Ta5d6ff"Ta5d6ffon_tab_releaseTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffon_tab_touch_downTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8ffon_tab_touch_moveTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8ffon_tab_touch_upTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8ffon_tab_pressTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Te6edf3par Tff7b72= Tff7b72selfTff7b72.Td2a8ffparent_widget
Tff7b72if Te6edf3parTff7b72.Td2a8ffprevious_tab Tff7b72is Tff7b72not Tff7b72selfTb4b4b4:
Tff7b72if Te6edf3parTff7b72.Td2a8ffprevious_tabTff7b72.Td2a8ffindex Tff7b72> Tff7b72selfTff7b72.Td2a8ffindexTb4b4b4:
Te6edf3parTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Ta5d6ff"Ta5d6ffrightTa5d6ff"
Tff7b72elif Te6edf3parTff7b72.Td2a8ffprevious_tabTff7b72.Td2a8ffindex Tff7b72< Tff7b72selfTff7b72.Td2a8ffindexTb4b4b4:
Te6edf3parTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Ta5d6ff"Ta5d6ffleftTa5d6ff"
Te6edf3parTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffcurrent Tff7b72= Tff7b72selfTff7b72.Td2a8ffname
Te6edf3parTff7b72.Td2a8ffprevious_tab Tff7b72= Tff7b72self
Tff7b72def Td2a8ffon_tab_releaseTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Tff7b72__repr__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ff<MDTab name=Ta5d6ff'Tffd700{Tff7b72selfTff7b72.Td2a8ffnameTffd700}Ta5d6ff'Ta5d6ff, text=Ta5d6ff'Tffd700{Tff7b72selfTff7b72.Td2a8fftextTffd700}Ta5d6ff'Ta5d6ff>Ta5d6ff"
Tff7b72class T56d364MDBottomNavigationItemTb4b4b4(Te6edf3MDTabTb4b4b4)Tb4b4b4:
Te6edf3header Tff7b72= Te6edf3ObjectPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
:attr:`header` is an :class:`~MDBottomNavigationHeader`
and defaults to `None`.
"""
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)
Tff7b72def Td2a8ffon_tab_pressTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Called when clicking on a panel item."""
Te6edf3bottom_navigation_object Tff7b72= Tff7b72selfTff7b72.Td2a8ffparent_widget
Te6edf3bottom_navigation_header_object Tff7b72= Tb4b4b4(
Te6edf3bottom_navigation_objectTff7b72.Td2a8ffprevious_tabTff7b72.Td2a8ffheader
Tb4b4b4)
Te6edf3bottom_navigation_objectTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffcurrent Tff7b72= Tff7b72selfTff7b72.Td2a8ffname
Tff7b72if Te6edf3bottom_navigation_objectTff7b72.Td2a8ffprevious_tab Tff7b72is Tff7b72not Tff7b72selfTb4b4b4:
Tff7b72if Te6edf3bottom_navigation_objectTff7b72.Td2a8ffuse_textTb4b4b4:
Te6edf3AnimationTb4b4b4(Te6edf3_label_font_sizeTff7b72=Te6edf3spTb4b4b4(T79c0ff12Tb4b4b4)Tb4b4b4, Te6edf3dTff7b72=T79c0ff0.1Tb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(
Te6edf3bottom_navigation_objectTff7b72.Td2a8ffprevious_tabTff7b72.Td2a8ffheader
Tb4b4b4)
Te6edf3AnimationTb4b4b4(
Te6edf3_selected_region_widthTff7b72=T79c0ff0Tb4b4b4,
Te6edf3tTff7b72=Ta5d6ff"Ta5d6ffin_out_sineTa5d6ff"Tb4b4b4,
Te6edf3dTff7b72=T79c0ff0Tb4b4b4,
Tb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Te6edf3bottom_navigation_header_objectTb4b4b4)
Te6edf3AnimationTb4b4b4(
Te6edf3_text_color_normalTff7b72=Te6edf3bottom_navigation_header_objectTff7b72.Td2a8fftext_color_normal
Tff7b72if Te6edf3bottom_navigation_objectTff7b72.Td2a8ffprevious_tabTff7b72.Td2a8ffheaderTff7b72.Td2a8fftext_color_normal
Tff7b72!= Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]
Tff7b72else Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffdisabled_hint_text_colorTb4b4b4,
Te6edf3dTff7b72=T79c0ff0.1Tb4b4b4,
Tb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Te6edf3bottom_navigation_objectTff7b72.Td2a8ffprevious_tabTff7b72.Td2a8ffheaderTb4b4b4)
Te6edf3bottom_navigation_objectTff7b72.Td2a8ffprevious_tabTff7b72.Td2a8ffheaderTff7b72.Td2a8ffactive Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffheaderTff7b72.Td2a8ffactive Tff7b72= Tff7b72True
Te6edf3bottom_navigation_objectTff7b72.Td2a8ffprevious_tab Tff7b72= Tff7b72self
Tff7b72def Td2a8ffon_disabledTb4b4b4(
Tff7b72selfTb4b4b4, Te6edf3instance_bottom_navigation_itemTb4b4b4, Te6edf3disabled_valueTb4b4b4: Tffa657bool
Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffheaderTff7b72.Td2a8ffdisabled Tff7b72= Te6edf3disabled_value
Tff7b72def Td2a8ffon_leaveTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72class T56d364TabbedPanelBaseTb4b4b4(
Te6edf3ThemableBehaviorTb4b4b4, Te6edf3SpecificBackgroundColorBehaviorTb4b4b4, Te6edf3BoxLayout
Tb4b4b4)Tb4b4b4:
T8b949e"""
A class that contains all variables a :class:`~kivy.properties.TabPannel`
must have. It is here so I (zingballyhoo) don't get mad about
the :class:`~kivy.properties.TabbedPannels` not being DRY.
"""
Te6edf3current Tff7b72= Te6edf3StringPropertyTb4b4b4(Tff7b72NoneTb4b4b4)
T8b949e"""
Current tab name.
:attr:`current` is an :class:`~kivy.properties.StringProperty`
and defaults to `None`.
"""
Te6edf3previous_tab Tff7b72= Te6edf3ObjectPropertyTb4b4b4(Tff7b72NoneTb4b4b4, Te6edf3aloownoneTff7b72=Tff7b72TrueTb4b4b4)
T8b949e"""
:attr:`previous_tab` is an :class:`~MDTab` and defaults to `None`.
"""
Te6edf3panel_color Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tff7b72NoneTb4b4b4)
T8b949e"""
Panel color of bottom navigation.
:attr:`panel_color` is an :class:`~kivy.properties.ColorProperty`
and defaults to `None`.
"""
Te6edf3tabs Tff7b72= Te6edf3ListPropertyTb4b4b4(Tb4b4b4)
Tff7b72class T56d364MDBottomNavigationTb4b4b4(Te6edf3DeclarativeBehaviorTb4b4b4, Te6edf3TabbedPanelBaseTb4b4b4)Tb4b4b4:
T8b949e"""
A bottom navigation that is implemented by delegating all items to a
:class:`~kivy.uix.screenmanager.ScreenManager`.
:Events:
:attr:`on_switch_tabs`
Called when switching tabs. Returns the object of the tab to be
opened.
.. versionadded:: 1.0.0
"""
Te6edf3text_color_normal Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4)
T8b949e"""
Text color of the label when it is not selected.
.. code-block:: kv
MDBottomNavigation:
text_color_normal: 1, 0, 1, 1
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/bottom-navigation-text_color_normal.png
:attr:`text_color_normal` is an :class:`~kivy.properties.ColorProperty`
and defaults to `[1, 1, 1, 1]`.
"""
Te6edf3text_color_active Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4)
T8b949e"""
Text color of the label when it is selected.
.. code-block:: kv
MDBottomNavigation:
text_color_active: 0, 0, 0, 1
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/bottom-navigation-text_color_active.png
:attr:`text_color_active` is an :class:`~kivy.properties.ColorProperty`
and defaults to `[1, 1, 1, 1]`.
"""
Te6edf3use_text Tff7b72= Te6edf3BooleanPropertyTb4b4b4(Tff7b72TrueTb4b4b4)
T8b949e"""
Use text for :class:`~MDBottomNavigationItem` or not.
If ``True``, the :class:`~MDBottomNavigation` panel height will be reduced
by the text height.
.. versionadded:: 1.0.0
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/bottom-navigation-use-text.png
:align: center
:attr:`use_text` is an :class:`~kivy.properties.BooleanProperty`
and defaults to `True`.
"""
Te6edf3selected_color_background Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tff7b72NoneTb4b4b4)
T8b949e"""
The background color of the highlighted item when using Material Design v3.
.. versionadded:: 1.0.0
.. code-block:: kv
MDBottomNavigation:
selected_color_background: 0, 0, 1, .4
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/bottom-navigation=selected-color-background.png
:attr:`selected_color_background` is an :class:`~kivy.properties.ColorProperty`
and defaults to `None`.
"""
Te6edf3font_name Tff7b72= Te6edf3StringPropertyTb4b4b4(Ta5d6ff"Ta5d6ffRobotoTa5d6ff"Tb4b4b4)
T8b949e"""
Font name of the label.
.. versionadded:: 1.0.0
.. code-block:: kv
MDBottomNavigation:
font_name: "path/to/font.ttf"
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/bottom-navigation-font-name.png
:attr:`font_name` is an :class:`~kivy.properties.StringProperty`
and defaults to `'Roboto'`.
"""
Te6edf3first_widget Tff7b72= Te6edf3ObjectPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
:attr:`first_widget` is an :class:`~MDBottomNavigationItem`
and defaults to `None`.
"""
Te6edf3tab_header Tff7b72= Te6edf3ObjectPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
:attr:`tab_header` is an :class:`~MDBottomNavigationHeader`
and defaults to `None`.
"""
Te6edf3set_bars_color Tff7b72= Te6edf3BooleanPropertyTb4b4b4(Tff7b72FalseTb4b4b4)
T8b949e"""
If `True` the background color of the navigation bar will be set
automatically according to the current color of the toolbar.
.. versionadded:: 1.0.0
:attr:`set_bars_color` is an :class:`~kivy.properties.BooleanProperty`
and defaults to `False`.
"""
Te6edf3widget_index Tff7b72= Te6edf3NumericPropertyTb4b4b4(T79c0ff0Tb4b4b4)
T8b949e# Text active color if it is selected.
Te6edf3_active_color Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4)
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprevious_tab Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffregister_event_typeTb4b4b4(Ta5d6ff"Ta5d6ffon_switch_tabsTa5d6ff"Tb4b4b4)
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3material_styleTff7b72=Tff7b72selfTff7b72.Td2a8ffrefresh_tabsTb4b4b4)
Te6edf3WindowTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_resizeTff7b72=Tff7b72selfTff7b72.Td2a8ffon_resizeTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Tff7b72lambda Te6edf3xTb4b4b4: Tff7b72selfTff7b72.Td2a8ffon_resizeTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Tff7b72selfTff7b72.Td2a8ffset_status_bar_colorTb4b4b4)
Tff7b72def Td2a8ffset_status_bar_colorTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3intervalTb4b4b4: Te6edf3UnionTb4b4b4[Tffa657intTb4b4b4, Tffa657floatTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffset_bars_colorTb4b4b4:
Te6edf3set_bars_colorsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffpanel_colorTb4b4b4, Tff7b72NoneTb4b4b4, Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8fftheme_styleTb4b4b4)
Tff7b72def Td2a8ffswitch_tabTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3name_tabTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Switching the tab by name."""
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Te6edf3name_tabTb4b4b4)Tb4b4b4:
Tff7b72raise Te6edf3ScreenManagerExceptionTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffNo Screen with name Ta5d6ff'Tffd700{Te6edf3name_tabTffd700}Ta5d6ff'Ta5d6ff.Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffget_screenTb4b4b4(Te6edf3name_tabTb4b4b4)Tff7b72.Td2a8ffdispatchTb4b4b4(Ta5d6ff"Ta5d6ffon_tab_pressTa5d6ff"Tb4b4b4)
Te6edf3count_index_screen Tff7b72= Tb4b4b4[
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffscreensTff7b72.Td2a8ffindexTb4b4b4(Te6edf3screenTb4b4b4)
Tff7b72for Te6edf3screen Tff7b72in Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffscreens
Tff7b72if Te6edf3screenTff7b72.Td2a8ffname Tff7b72== Te6edf3name_tab
Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3numbers_screens Tff7b72= Tffa657listTb4b4b4(Tffa657rangeTb4b4b4(Tffa657lenTb4b4b4(Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffscreensTb4b4b4)Tb4b4b4)Tb4b4b4)
Te6edf3numbers_screensTff7b72.Td2a8ffreverseTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffchildrenTb4b4b4[
Te6edf3numbers_screensTff7b72.Td2a8ffindexTb4b4b4(Te6edf3count_index_screenTb4b4b4)
Tb4b4b4]Tff7b72.Td2a8ffdispatchTb4b4b4(Ta5d6ff"Ta5d6ffon_pressTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffrefresh_tabsTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Refresh all tabs."""
Tff7b72if Tff7b72selfTff7b72.Td2a8ffidsTb4b4b4:
Te6edf3tab_bar Tff7b72= Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_bar
Te6edf3tab_barTff7b72.Td2a8ffclear_widgetsTb4b4b4(Tb4b4b4)
Te6edf3tab_manager Tff7b72= Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_manager
Tff7b72selfTff7b72.Td2a8ff_active_color Tff7b72= Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffprimary_color
Tff7b72if Tff7b72selfTff7b72.Td2a8fftext_color_active Tff7b72!= Tb4b4b4[T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_active_color Tff7b72= Tff7b72selfTff7b72.Td2a8fftext_color_active
Tff7b72for Te6edf3tab Tff7b72in Te6edf3tab_managerTff7b72.Td2a8ffscreensTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftab_header Tff7b72= Te6edf3MDBottomNavigationHeaderTb4b4b4(Te6edf3tabTff7b72=Te6edf3tabTb4b4b4, Te6edf3panelTff7b72=Tff7b72selfTb4b4b4)
Te6edf3tabTff7b72.Td2a8ffheader Tff7b72= Tff7b72selfTff7b72.Td2a8fftab_header
Te6edf3tab_barTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8fftab_headerTb4b4b4)
Tff7b72if Te6edf3tab Tff7b72is Tff7b72selfTff7b72.Td2a8fffirst_widgetTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftab_headerTff7b72.Td2a8ff_text_color_normal Tff7b72= Tff7b72selfTff7b72.Td2a8ff_active_color
Tff7b72selfTff7b72.Td2a8fftab_headerTff7b72.Td2a8ff_label_font_size Tff7b72= Te6edf3spTb4b4b4(T79c0ff14Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftab_headerTff7b72.Td2a8ffactive Tff7b72= Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftab_headerTff7b72.Td2a8ffidsTff7b72.Td2a8ff_labelTff7b72.Td2a8fffont_size Tff7b72= Te6edf3spTb4b4b4(T79c0ff12Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftab_headerTff7b72.Td2a8ff_label_font_size Tff7b72= Te6edf3spTb4b4b4(T79c0ff12Tb4b4b4)
Tff7b72def Td2a8ffon_font_nameTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3instance_bottom_navigationTb4b4b4, Te6edf3font_nameTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72for Te6edf3tab Tff7b72in Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffchildrenTb4b4b4:
Te6edf3tabTff7b72.Td2a8ffidsTff7b72.Td2a8ff_labelTff7b72.Td2a8fffont_name Tff7b72= Te6edf3font_name
Tff7b72def Td2a8ffon_selected_color_backgroundTb4b4b4(
Tff7b72selfTb4b4b4, Te6edf3instance_bottom_navigationTb4b4b4, Te6edf3colorTb4b4b4: Tffa657list
Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72def Td2a8ffon_selected_color_backgroundTb4b4b4(Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72for Te6edf3tab Tff7b72in Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffchildrenTb4b4b4:
Te6edf3tabTff7b72.Td2a8ffselected_color_background Tff7b72= Te6edf3color
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3on_selected_color_backgroundTb4b4b4)
Tff7b72def Td2a8ffon_use_textTb4b4b4(
Tff7b72selfTb4b4b4, Te6edf3instance_bottom_navigationTb4b4b4, Te6edf3use_text_valueTb4b4b4: Tffa657bool
Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72not Te6edf3use_text_valueTb4b4b4:
Tff7b72for Te6edf3instance_bottom_navigation_header Tff7b72in Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffchildrenTb4b4b4:
Te6edf3instance_bottom_navigation_headerTff7b72.Td2a8ffidsTff7b72.Td2a8ffitem_containerTff7b72.Td2a8ffremove_widgetTb4b4b4(
Te6edf3instance_bottom_navigation_headerTff7b72.Td2a8ffidsTff7b72.Td2a8ff_label
Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffmaterial_style Tff7b72== Ta5d6ff"Ta5d6ffM2Ta5d6ff"Tb4b4b4:
Te6edf3height Tff7b72= Te6edf3dpTb4b4b4(T79c0ff42Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3height Tff7b72= Te6edf3dpTb4b4b4(T79c0ff80Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffheight Tff7b72= Te6edf3height
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ffbottom_panelTff7b72.Td2a8ffheight Tff7b72= Te6edf3height
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffheight Tff7b72= Te6edf3height
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffmaterial_style Tff7b72== Ta5d6ff"Ta5d6ffM2Ta5d6ff"Tb4b4b4:
Te6edf3height Tff7b72= Te6edf3STANDARD_INCREMENT
Tff7b72elseTb4b4b4:
Te6edf3height Tff7b72= Te6edf3dpTb4b4b4(T79c0ff80Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffheight Tff7b72= Te6edf3height
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ffbottom_panelTff7b72.Td2a8ffheight Tff7b72= Te6edf3height
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffheight Tff7b72= Te6edf3height
Tff7b72def Td2a8ffon_text_color_normalTb4b4b4(
Tff7b72selfTb4b4b4, Te6edf3instance_bottom_navigationTb4b4b4, Te6edf3colorTb4b4b4: Tffa657list
Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Te6edf3MDBottomNavigationHeaderTff7b72.Td2a8fftext_color_normal Tff7b72= Te6edf3color
Tff7b72for Te6edf3tab Tff7b72in Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffchildrenTb4b4b4:
Tff7b72if Tff7b72not Te6edf3tabTff7b72.Td2a8ffactiveTb4b4b4:
Te6edf3tabTff7b72.Td2a8ff_text_color_normal Tff7b72= Te6edf3color
Tff7b72def Td2a8ffon_text_color_activeTb4b4b4(
Tff7b72selfTb4b4b4, Te6edf3instance_bottom_navigationTb4b4b4, Te6edf3colorTb4b4b4: Tffa657list
Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72def Td2a8ffon_text_color_activeTb4b4b4(Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Te6edf3MDBottomNavigationHeaderTff7b72.Td2a8fftext_color_active Tff7b72= Te6edf3color
Tff7b72selfTff7b72.Td2a8fftext_color_active Tff7b72= Te6edf3color
Tff7b72for Te6edf3tab Tff7b72in Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffchildrenTb4b4b4:
Te6edf3tabTff7b72.Td2a8fftext_color_active Tff7b72= Te6edf3color
Tff7b72if Te6edf3tabTff7b72.Td2a8ffactiveTb4b4b4:
Te6edf3tabTff7b72.Td2a8ff_text_color_normal Tff7b72= Te6edf3color
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3on_text_color_activeTb4b4b4)
Tff7b72def Td2a8ffon_switch_tabsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3bottom_navigation_itemTb4b4b4, Te6edf3name_tabTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""
Called when switching tabs. Returns the object of the tab to be opened.
"""
Tff7b72def Td2a8ffon_sizeTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffon_resizeTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffon_resizeTb4b4b4(
Tff7b72selfTb4b4b4,
Te6edf3instanceTb4b4b4: Te6edf3UnionTb4b4b4[Te6edf3WindowSDLTb4b4b4, Tff7b72NoneTb4b4b4] Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3widthTb4b4b4: Te6edf3UnionTb4b4b4[Tffa657intTb4b4b4, Tff7b72NoneTb4b4b4] Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3do_againTb4b4b4: Tffa657bool Tff7b72= Tff7b72TrueTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Called when the application window is resized."""
Te6edf3full_width Tff7b72= T79c0ff0
Tff7b72for Te6edf3tab Tff7b72in Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffscreensTb4b4b4:
Te6edf3full_width Tff7b72+Tff7b72= Te6edf3tabTff7b72.Td2a8ffheaderTff7b72.Td2a8ffwidth
Te6edf3tabTff7b72.Td2a8ffheaderTff7b72.Td2a8fftext_color_normal Tff7b72= Tff7b72selfTff7b72.Td2a8fftext_color_normal
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffwidth Tff7b72= Te6edf3full_width
Tff7b72if Te6edf3do_againTb4b4b4:
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Tff7b72lambda Te6edf3xTb4b4b4: Tff7b72selfTff7b72.Td2a8ffon_resizeTb4b4b4(Te6edf3do_againTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4, T79c0ff0.1Tb4b4b4)
Tff7b72def Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3widgetTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3widgetTb4b4b4, Te6edf3MDBottomNavigationItemTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_index Tff7b72+Tff7b72= T79c0ff1
Te6edf3widgetTff7b72.Td2a8ffindex Tff7b72= Tff7b72selfTff7b72.Td2a8ffwidget_index
Te6edf3widgetTff7b72.Td2a8ffparent_widget Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Te6edf3widgetTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffwidget_index Tff7b72== T79c0ff1Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprevious_tab Tff7b72= Te6edf3widget
Tff7b72selfTff7b72.Td2a8fffirst_widget Tff7b72= Te6edf3widget
Tff7b72selfTff7b72.Td2a8ffrefresh_tabsTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffadd_widgetTb4b4b4(Te6edf3widgetTb4b4b4)
Tff7b72def Td2a8ffremove_widgetTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3widgetTb4b4b4)Tb4b4b4:
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3widgetTb4b4b4, Te6edf3MDBottomNavigationItemTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_managerTff7b72.Td2a8ffremove_widgetTb4b4b4(Te6edf3widgetTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrefresh_tabsTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffremove_widgetTb4b4b4(Te6edf3widgetTb4b4b4)
Tff7b72def Td2a8ff_get_switchig_tabTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3name_tabTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Te6edf3MDBottomNavigationItemTb4b4b4:
Te6edf3bottom_navigation_item Tff7b72= Tff7b72None
Tff7b72for Te6edf3bottom_navigation_header_instance Tff7b72in Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftab_barTff7b72.Td2a8ffchildrenTb4b4b4:
Tff7b72if Te6edf3bottom_navigation_header_instanceTff7b72.Td2a8fftabTff7b72.Td2a8ffname Tff7b72== Te6edf3name_tabTb4b4b4:
Te6edf3bottom_navigation_item Tff7b72= Te6edf3bottom_navigation_header_instanceTff7b72.Td2a8fftab
Tff7b72break
Tff7b72return Te6edf3bottom_navigation_item
Tff7b72class T56d364MDBottomNavigationBarTb4b4b4(
Te6edf3ThemableBehaviorTb4b4b4,
Te6edf3FakeRectangularElevationBehaviorTb4b4b4,
Te6edf3MDFloatLayoutTb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72pass
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────